A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices, referred to as routers, maintain routing information that describes routes through the network. A “route” can generally be defined as a path between two locations on the network. Routers include a control plane, sometimes called a management plane, which maintains the routing information, and a forwarding plane, which forwards received packets according to the routing information.
Network service providers provide services such as security, tunneling, virtual private networks, filtering, load-balancing, VoIP/Multimedia processing and various types of application proxies (HTTP, XML, WAP, etc) to incoming packets. Service providers also provide content-specific services designed to improve the quality of a user's experience, for example, video streaming and caching. To provide these new services, service providers have often turned to dedicated appliances that include one or more service nodes, where each service node applies a particular service.
A set of services applied by the service nodes to network traffic of a subscriber may be referred to as a “service chain.” When network traffic from a subscriber is received by a service provider, each service node applies its respective service to the network traffic. If one or more service nodes experience outages or cannot otherwise apply the respective services, the complete set of services in the service chain may not be applied to network traffic for a subscriber.